package com.qj.yantaishan.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qj.yantaishan.common.annotation.Excel;
import com.qj.yantaishan.domain.ProductCategory;
import com.qj.yantaishan.domain.ProductCustomField;
import com.qj.yantaishan.domain.ProductSku;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

@Data
@TableName("shanglala_product")
public class ProductVo {

    /**
     * 规格数量
     */
    @TableField(exist = false)
    private Integer skuNum;
    @TableField(exist = false)
    private String categoryName = "酒水";
    /**
     * 商品id
     */
    @TableId(type = IdType.AUTO)
    private Integer productId;


    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Integer categoryFid;
    /** 商品销量 */
    @Excel(name = "商品销量")
    private Integer sales;
    /**
     * 商品类型 0实物 1虚拟
     */
    @Excel(name = "商品类型 0实物 1虚拟")
    private String type;
    /**
     * 有没有商品分组
     */
    @Excel(name = "有没有商品分组")
    private Integer hasCategory;
    /**
     * 分组id
     */
    @Excel(name = "分组id")
    private Integer groupId;
    /**
     * 分组ids
     */
    @TableField(exist = false)
    private String groupIds;
    /**
     * 商品名称
     */
    @Excel(name = "商品名称")
    private String name;
    /**
     * 价格
     */
    @Excel(name = "价格")
    private BigDecimal price;
    /**
     * 白酒计量
     */
    @Excel(name = "白酒计量")
    private BigDecimal metering;
    /**
     * 商品主图
     */
    @Excel(name = "商品主图")
    private String image;
    /**
     * 商品视频封面
     */
    @Excel(name = "商品视频封面")
    private String videoCover;
    /**
     * 显示库存 0 不显示 1显示
     */
    @Excel(name = "显示库存 0 不显示 1显示")
    private String showSku;

    /** 产品重量，单位：克 */
    @Excel(name = "产品重量，单位：克")
    private BigDecimal weight;


    /** 有没有自定义文本 */
    @Excel(name = "有没有自定义文本")
    private Integer hasCustom;

    /** 是否有商品属性 0否 1是 */
    @Excel(name = "是否有商品属性 0否 1是")
    private Integer hasProperty;

    /**
     * 分类id
     */
    @Excel(name = "分类id")
    private Integer categoryId;

    /**
     * 售完 0未售完 1已售完
     */
    @Excel(name = "售完 0未售完 1已售完")
    private String soldout;
    /**
     * 状态 0仓库中 1上架 2 删除
     */
    @Excel(name = "状态 0仓库中 1上架 2 删除")
    private String status;
    /**
     * 本店分类id
     */
    @Excel(name = "本店分类id")
    private Long storeCategoryId;
    /**
     * 商品设置的发货地址，没值时取开店地址作为商品详情的标签显示
     */
    @Excel(name = "商品设置的发货地址，没值时取开店地址作为商品详情的标签显示")
    private String setSendAddress;
    /**
     * 商品数量
     */
    @Excel(name = "商品数量")
    private Integer quantity;
    /**
     * 实物批发独立库存
     */
    @Excel(name = "实物批发独立库存")
    private Integer wholesaleQuantity;


    /**
     * 商品视频
     */
    @Excel(name = "商品视频")
    private String video;
    /**
     * 无规格时商品供货价，有规格时取sku表的supply_price为供货价
     */
    @Excel(name = "无规格时商品供货价，有规格时取sku表的supply_price为供货价")
    private BigDecimal gongPrice;
    /**
     * 送他人类型 express快递发货 selffetch上门自提
     */
    @Excel(name = "送他人类型 express快递发货 selffetch上门自提")
    private String sendOtherMethod;
    /**
     * 是否支持预约
     */
    @Excel(name = "是否支持预约")
    private Integer isReservation;
    /**
     * 发票类型 逗号分隔 0无 1普通发票 2增值税发票
     */
    @Excel(name = "发票类型 逗号分隔 0无 1普通发票 2增值税发票")
    private String invoice;


    /** 添加日期 */
    @Excel(name = "添加日期")
    private String dateAdded;
    /** 排序 */
    @Excel(name = "排序")
    private Long sort;

    /**
     * 单个商品一次性购买多件包邮，0：不包邮
     */
    @Excel(name = "单个商品一次性购买多件包邮，0：不包邮")
    private Long freePostage;
    /**
     * 商品描述
     */
    @Excel(name = "商品描述")
    private String goodsDesc;
    /**
     * 是否平台推荐 0 未开启 1提交审核 2通过审核 3 未通过审核
     */
    @Excel(name = "是否平台推荐 0 未开启 1提交审核 2通过审核 3 未通过审核")
    private Integer platformRecommend;
    /**
     * 是否定时上下架,1是0否
     */
    @Excel(name = "是否定时上下架,1是0否")
    private Integer isTimeChangeStatus;
    /**
     * 开售时间 0立即开售
     */
    @Excel(name = "开售时间 0立即开售")
    private Long soldTime;

    /**
     * 保修 0无 1有
     */
    @Excel(name = "保修 0无 1有")
    private String warranty;

    /**
     * 新字段保存pc端商品详情信息
     */
    @Excel(name = "新字段保存pc端商品详情信息")
    private String pcDesc;
    /**
     * 店铺id
     */
    @Excel(name = "店铺id")
    private Integer storeId;
    /**
     * 分组名
     */
    @TableField(exist = false)
    private String groupName;

    /**
     * 分类id和他的父id
     */
    @TableField(exist = false)
    private List<Integer> categoryIds;

    /**
     * 是否仅开启到店自提1是0否
     */
    @Excel(name = "是否仅开启到店自提1是0否")
    private Integer isZiti;
    @TableField(exist = false)
    private ProductCategory productCategory;
    //商品 自定义字段 shanglala_product_custom_field
    @TableField(exist = false)
    List<ProductCustomField> productCustomFieldList;
    @TableField(exist = false)
    List<ProductSku> productSkuList;


}
